<?php
function dd($val)
{
    if (is_array($val)) {
        print_r($val);
    } elseif (is_object($val)) {
        if (count(get_class_methods($val)) && in_array('toArray', get_class_methods($val))) {
            print_r($val->toArray());
        } elseif (count(get_class_methods($val)) && in_array('getIterator', get_class_methods($val))) {
            print_r($val->getIterator()->toArray());
        } elseif (count(get_class_methods($val)) && in_array('fromColumns', get_class_methods($val))) {
            echo $val, PHP_EOL;
        } else {
            var_dump($val);
        }
    } elseif (is_bool($val) || is_float($val) || is_double($val) || is_resource($val) || is_null($val)) {
        var_dump($val);
    } else {
        echo $val, PHP_EOL;
    }
    exit;
}

/**
 * 数据XML编码
 * @param mixed $data 数据
 * @return string
 */
function arrayToXml($data)
{
    $xml = '';
    foreach ($data as $key => $val) {
        is_numeric($key) && $key = "item id=\"$key\"";
        $xml .= "<$key>";
        $xml .= (is_array($val) || is_object($val)) ? arrayToXml($val) : $val;
        list($key,) = explode(' ', $key);
        $xml .= "</$key>";
    }
    return $xml;
}
